{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from sklearn import datasets, linear_model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.read_csv('D:\\data2.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AT</th>\n",
       "      <th>V</th>\n",
       "      <th>AP</th>\n",
       "      <th>RH</th>\n",
       "      <th>PE</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>8.34</td>\n",
       "      <td>40.77</td>\n",
       "      <td>1010.84</td>\n",
       "      <td>90.01</td>\n",
       "      <td>480.48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>23.64</td>\n",
       "      <td>58.49</td>\n",
       "      <td>1011.40</td>\n",
       "      <td>74.20</td>\n",
       "      <td>445.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>29.74</td>\n",
       "      <td>56.90</td>\n",
       "      <td>1007.15</td>\n",
       "      <td>41.91</td>\n",
       "      <td>438.76</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>19.07</td>\n",
       "      <td>49.69</td>\n",
       "      <td>1007.22</td>\n",
       "      <td>76.79</td>\n",
       "      <td>453.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>11.80</td>\n",
       "      <td>40.66</td>\n",
       "      <td>1017.13</td>\n",
       "      <td>97.20</td>\n",
       "      <td>464.43</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      AT      V       AP     RH      PE\n",
       "0   8.34  40.77  1010.84  90.01  480.48\n",
       "1  23.64  58.49  1011.40  74.20  445.75\n",
       "2  29.74  56.90  1007.15  41.91  438.76\n",
       "3  19.07  49.69  1007.22  76.79  453.09\n",
       "4  11.80  40.66  1017.13  97.20  464.43"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(9568, 5)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AT</th>\n",
       "      <th>V</th>\n",
       "      <th>AP</th>\n",
       "      <th>RH</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>8.34</td>\n",
       "      <td>40.77</td>\n",
       "      <td>1010.84</td>\n",
       "      <td>90.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>23.64</td>\n",
       "      <td>58.49</td>\n",
       "      <td>1011.40</td>\n",
       "      <td>74.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>29.74</td>\n",
       "      <td>56.90</td>\n",
       "      <td>1007.15</td>\n",
       "      <td>41.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>19.07</td>\n",
       "      <td>49.69</td>\n",
       "      <td>1007.22</td>\n",
       "      <td>76.79</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>11.80</td>\n",
       "      <td>40.66</td>\n",
       "      <td>1017.13</td>\n",
       "      <td>97.20</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      AT      V       AP     RH\n",
       "0   8.34  40.77  1010.84  90.01\n",
       "1  23.64  58.49  1011.40  74.20\n",
       "2  29.74  56.90  1007.15  41.91\n",
       "3  19.07  49.69  1007.22  76.79\n",
       "4  11.80  40.66  1017.13  97.20"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = data[['AT', 'V', 'AP', 'RH']]\n",
    "X.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PE</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>480.48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>445.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>438.76</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>453.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>464.43</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       PE\n",
       "0  480.48\n",
       "1  445.75\n",
       "2  438.76\n",
       "3  453.09\n",
       "4  464.43"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y = data[['PE']]\n",
    "y.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\python\\lib\\site-packages\\sklearn\\cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n",
      "  \"This module will be removed in 0.20.\", DeprecationWarning)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.cross_validation import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(7176, 4)\n",
      "(7176, 1)\n",
      "(2392, 4)\n",
      "(2392, 1)\n"
     ]
    }
   ],
   "source": [
    "print (X_train.shape)\n",
    "print (y_train.shape)\n",
    "print (X_test.shape)\n",
    "print (y_test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "linreg = LinearRegression()\n",
    "linreg.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[447.06297099]\n",
      "[[-1.97376045 -0.23229086  0.0693515  -0.15806957]]\n"
     ]
    }
   ],
   "source": [
    "print (linreg.intercept_)\n",
    "print (linreg.coef_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 20.080401202073897\n",
      "RMSE: 4.481116066570236\n"
     ]
    }
   ],
   "source": [
    "#模型拟合测试集\n",
    "y_pred = linreg.predict(X_test)\n",
    "from sklearn import metrics\n",
    "# 用scikit-learn计算MSE\n",
    "print (\"MSE:\",metrics.mean_squared_error(y_test, y_pred))\n",
    "print (\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_test, y_pred)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 23.208907470136236\n",
      "RMSE: 4.817562399194871\n"
     ]
    }
   ],
   "source": [
    "X = data[['AT', 'V', 'AP']]\n",
    "y = data[['PE']]\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)\n",
    "from sklearn.linear_model import LinearRegression\n",
    "linreg = LinearRegression()\n",
    "linreg.fit(X_train, y_train)\n",
    "#模型拟合测试集\n",
    "y_pred = linreg.predict(X_test)\n",
    "from sklearn import metrics\n",
    "# 用scikit-learn计算MSE\n",
    "print (\"MSE:\",metrics.mean_squared_error(y_test, y_pred))\n",
    "# 用scikit-learn计算RMSE\n",
    "print (\"RMSE:\",np.sqrt(metrics.mean_squared_error(y_test, y_pred)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 20.7955974619431\n",
      "RMSE: 4.560219014690314\n"
     ]
    }
   ],
   "source": [
    "X = data[['AT', 'V', 'AP', 'RH']]\n",
    "y = data[['PE']]\n",
    "from sklearn.model_selection import cross_val_predict\n",
    "predicted = cross_val_predict(linreg, X, y, cv=10)\n",
    "# 用scikit-learn计算MSE\n",
    "print (\"MSE:\",metrics.mean_squared_error(y, predicted))\n",
    "# 用scikit-learn计算RMSE\n",
    "print (\"RMSE:\",np.sqrt(metrics.mean_squared_error(y, predicted)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()\n",
    "ax.scatter(y, predicted)\n",
    "ax.plot([y.min(), y.max()], [y.min(), y.max()], 'k--', lw=4)\n",
    "ax.set_xlabel('Measured')\n",
    "ax.set_ylabel('Predicted')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
